package models

import "gitee.com/blueskyxi2006/sql-metrics/dao"

//  ServerMetrics Model
//# TYPE emg_loader_cdr gauge
//# HELP emg_loader_cdr for cdr number in latest 30min.
//emg_loader_cdr{label="wab",node="192.168.100.6"} $wabnum
type ServerMetrics struct {
	ID     int    `json:"id"`
	Name   string `json:"name"`
	Level  string   `json:"level"`
	Number int    `json:"number"`
	Node   string `json:"node"`
	IP     string `json:"ip"`
	Host   string `json:"host"`
	Status bool   `json:"status"`
}

/*
	Todo这个Model的增删改查操作都放在这里
*/
// CreateATodo 创建todo
func CreateATodo(sm *ServerMetrics) (err error) {
	err = dao.DB.Create(&sm).Error
	return
}

func GetAllTodo() (sms []*ServerMetrics, err error) {
	if err = dao.DB.Find(&sms).Error; err != nil {
		return nil, err
	}
	return
}

func GetAllServerMetrics(sql string) (sms []*ServerMetrics) {
	dao.DB.Raw(sql).Scan(&sms)

	//if err = dao.DB.Find(&sms).Error; err != nil{
	//	return nil, err
	//}
	return
}

func GetATodo(id string) (todo *ServerMetrics, err error) {
	todo = new(ServerMetrics)
	if err = dao.DB.Debug().Where("id=?", id).First(todo).Error; err != nil {
		return nil, err
	}
	return
}

func UpdateATodo(todo *ServerMetrics) (err error) {
	err = dao.DB.Save(todo).Error
	return
}

func DeleteATodo(id string) (err error) {
	err = dao.DB.Where("id=?", id).Delete(&ServerMetrics{}).Error
	return
}


